package com.tabnet.dao;

import java.util.HashMap;

import com.tabnet.beans.gammeproduit.AppelOffre;
import com.tabnet.beans.personnes.Fournisseur;

public interface DAOAppelOffre {

	/**
	 * Méthode qui ajoute un appel d'offre dans la base de données.
	 * @param appelOffre
	 * @throws DAOException
	 */
	public void addAppelOffre(AppelOffre appelOffre) throws DAOException;
	
	/**
	 * Méthode qui modifie un appel d'offre dans la base de données.
	 * @param appelOffre
	 * @throws DAOException
	 */
	public void updAppelOffre(AppelOffre appelOffre) throws DAOException;
	
	/**
	 * Méthode qui retourne un appel d'offre à partir de sont identifiant 
	 * dans la base de données.
	 * @param ref
	 * @return
	 * @throws DAOException
	 */
	public AppelOffre trouverAppelOffre(String ref) throws DAOException;
	
	/**
	 * Méthode qui supprime le lien entre l'appel d'offre et le fournisseur.
	 * @param appelOffre
	 * @param fourn
	 * @throws DAOException
	 */
	public void delAppelOffreFourn(AppelOffre appelOffre, Fournisseur fourn) throws DAOException;
	
	/**
	 * Méthode qui supprime l'appel d'offre et tous les liens avec les fournisseurs.
	 * @param appelOffre
	 * @throws DAOException
	 */
	public void delAppelOffreAdmin(AppelOffre appelOffre) throws DAOException;
	
	/**
	 * Méthode qui retourne une collection des appels d'offre du fournisseur
	 * qui sont présent dans la base de données.
	 * @param fourn
	 * @return HashMap<String, AppelOffre>
	 * @throws DAOException
	 */
	public HashMap<String, AppelOffre> listerAppelFourn(Fournisseur fourn) throws DAOException;
	
	/**
	 * Méthode qui retourne une collection des appels d'offre 
	 * qui sont présent dans la base de données.
	 * @return HashMap<String, AppelOffre>
	 * @throws DAOException
	 */
	public HashMap<String, AppelOffre> listerAppelAdmin() throws DAOException;
}
